licenses(["notice"])

package(default_visibility = ["//visibility:public"])

# In-memory parallel graph algorithms/utilities.
cc_library(
    name = "parallel-utils",
    hdrs = ["parallel-utils.h"],
    deps = [
        "@gbbs//pbbslib:utilities",
    ],
)

cc_library(
    name = "parallel-graph-utils",
    srcs = ["parallel-graph-utils.cc"],
    hdrs = ["parallel-graph-utils.h"],
    deps = [
        ":parallel-sequence-ops",
        "@com_google_absl//absl/strings",
        "@com_google_absl//absl/strings:str_format",
        "@gbbs//gbbs",
        "@gbbs//gbbs:graph_io",
        "@gbbs//gbbs:macros",
        "@gbbs//pbbslib:get_time",
        "@gbbs//pbbslib:seq",
        "@gbbs//pbbslib:sequence_ops",
        "@gbbs//pbbslib:utilities",
    ],
)

cc_library(
    name = "parallel-sequence-ops",
    hdrs = ["parallel-sequence-ops.h"],
    deps = [
        ":parallel-utils",
        "@com_google_absl//absl/types:span",
        "@gbbs//gbbs:bridge",
        "@gbbs//gbbs:macros",
        "@gbbs//pbbslib:counting_sort",
        "@gbbs//pbbslib:integer_sort",
        "@gbbs//pbbslib:monoid",
        "@gbbs//pbbslib:quicksort",
        "@gbbs//pbbslib:sample_sort",
        "@gbbs//pbbslib:seq",
        "@gbbs//pbbslib:sequence_ops",
        "@gbbs//pbbslib:utilities",
    ],
)
